package me.caofeng.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Copyright © 2017曹峰. All rights reserved.
 *
 * @Prject: mall
 * @Package: me.caofeng.util
 * @Description:
 * @Author: 曹峰 blog.caofeng.me
 * @Date: 2017-06-15 21:27
 * @Version: V1.0
 */
public class CheckUtil {

    /**
     * 检查手机号格式是否正确
     * <p>
     * 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
     * 联通号码段:130、131、132、136、185、186、145
     * 电信号码段:133、153、177、180、189
     *
     * @param phone 要检查的手机号
     * @return true是正确格式的手机号，false不是正确格式的手机号
     */
    public static boolean isPhone(String phone) {
        if (isEmpty(phone)) {
            return false;
        }
        String regex = "^((13[0-9])|(14[5|7|9])|(15([0-3]|[5-9]))|(17[0|5|6|7|8|])|(18[0-9]))\\d{8}$";
        return verify(phone, regex);
    }

    /**
     * @param origin 待验证的字符串
     * @param regex  正则表达式
     * @Author:曹峰 blog.caofeng.me
     * @Date: 2017/6/15 21:28
     * @Description: 验证字符串是否
     */
    public static boolean verify(String origin, String regex) {
        Pattern pattern = Pattern.compile(regex);
        return pattern.matcher(origin).matches();
    }

    /**
     * @return true 为空 ，false不为空
     * @Author:曹峰 blog.caofeng.me
     * @Date: 2017/6/15 21:31
     * @Description: 判断字符串是否为空
     */
    public static boolean isEmpty(String origin) {
        if (null == origin || origin.length() == 0) {
            return true;
        }

        return false;
    }


    /**
     * @return true格式正确，false格式不正确
     * @Author:曹峰 blog.caofeng.me
     * @Date: 2017/6/16 18:27
     * @Description: 检查密码格式是否正确, 不能包含中文，6个字以上
     */
    public static boolean isPassword(String password) {
        if (isEmpty(password)) {
            return false;
        }

        if (password.length() < 6) {
            return false;
        }

        if (isContainChinese(password)) {
            return false;
        }
        return true;
    }

    /**
     * @return true包含中文，false不包含中文
     * @Author:曹峰 blog.caofeng.me
     * @Date: 2017/6/16 18:30
     * @Description: 检测是否包含中文字符
     */
    public static boolean isContainChinese(String str) {
        if (isEmpty(str)) {
            return false;
        }
        String regs = "[\u4e00-\u9fa5]";
        Pattern pattern = Pattern.compile(regs);
        Matcher matcher = pattern.matcher(str);
        return matcher.find();
    }

    /**
     * @Author:曹峰 blog.caofeng.me
     * @Date: 2017/6/18 18:15
     * @Description: 检查字符串是否全部为数字
    */
    public static boolean isDigit(String str) {

        return verify(str,"\\d{4}");
    }

    public static void main(String[] args) {
        System.out.println(isDigit("1203"));

    }
}

